package EasyExcelDemo.write;

import EasyExcelDemo.listener.ExcelListener;
import EasyExcelDemo.read.ReadData;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * EasyExcel写的操作
 */
public class WriteDataMain {


    //循环设置要添加的数据，最终封装到list集合中
    private static List<WiriteData> data() {
        List<WiriteData> list = new ArrayList<WiriteData>();
        for (int i = 0; i < 10; i++) {
            WiriteData data = new WiriteData();
            data.setSno(i);
            data.setSname("张三"+i);
            list.add(data);
        }
        return list;
    }

    public static void main(String[] args) throws FileNotFoundException {
        // easyExcel写操作 写法1
//        String fileName = "C:\\Users\\Administrator\\Desktop\\SoftWare\\11.xlsx";
//        // 这里 需要指定写用哪个class去写，然后写到第一个sheet，名字为模板 然后文件流会自动关闭
//        // 如果这里想使用03 则 传入excelType参数即可
//        EasyExcel.write(fileName, WiriteData.class).sheet("写入方法一").doWrite(data());

        // 写法1：
        String fileName = "C:\\Users\\Administrator\\Desktop\\SoftWare\\11.xlsx";
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流会自动关闭
        EasyExcel.read(fileName, ReadData.class, new ExcelListener()).sheet().doRead();
        // 写法2：
        InputStream in = new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\Desktop\\SoftWare\\11.xlsx"));
        ExcelReader excelReader = EasyExcel.read(in, ReadData.class, new ExcelListener()).build();
        ReadSheet readSheet = EasyExcel.readSheet(0).build();
        excelReader.read(readSheet);
        // 这里千万别忘记关闭，读的时候会创建临时文件，到时磁盘会崩的
        excelReader.finish();
    }
}
